package com.sky.mapper;

import com.sky.dto.GoodsSalesDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Mapper
public interface ReportMapper {
    /**
     * 获取订单状态为已完成的订单的当天的营业额统计(当前订单总金额)
     * @param turnoverMap
     * @return
     */
    BigDecimal turnoverStatistics(Map<String, Object> turnoverMap);

    /**
     * 用户数量的统计
     * @param turnoverMap
     * @return
     */
    //@Select("SELECT COUNT(DISTINCT user_id) FROM orders WHERE order_time between #{startTime} and #{endTime} ")
    Long userStatistics(Map<String, Object> turnoverMap);
    /**
     * 获取订单统计的数据,所有日期的订单总数,所有日期的有效订单数
     */
    Long ordersStatistics(Map<String, Object> orderMap);

    /**
     * 多表查询,订单表和订单明细表,获取订单明细表中商品的销售量排名前10的商品名称和销售量列表
     * @param top10Map
     * @return
     */
    List<GoodsSalesDTO> getTop10Sales(Map<String, Object> top10Map);
}
